/*
 * cad_setores.java
 *
 *  LICENÇA CC-GNU LGPL
 * 
 * EXCLUSÃO DE GARANTIA 
1.COMO A BIBLIOTECA É LICENCIADA ELA TERÁ TOTAL GARANTIA DE SUPORTE TÉCNICO,
  MAS CASO O CÓDIGO-FONTE SOFRA ALTERAÇÕES, NÃO HAVERÁ NENHUMA GARANTIA PARA A 
  BIBLIOTECA, NO LIMITE PERMITIDO PELA LEI APLICÁVEL. EXCETO QUANDO DE OUTRA FORMA
  ESTABELECIDO POR ESCRITO, OS TITULARES DOS DIREITOS AUTORAIS E/OU OUTRAS PARTES 
  FORNECEM A BIBLIOTECA "NO ESTADO EM QUE SE ENCONTRA", SEM NENHUMA GARANTIA DE 
  QUALQUER TIPO, TANTO EXPRESSA COMO IMPLÍCITA, INCLUINDO, DENTRE OUTRAS, AS GARANTIAS
  IMPLÍCITAS DE COMERCIABILIDADE E ADEQUAÇÃO PARA UMA FINALIDADE ESPECÍFICA. 
  O RISCO INTEGRAL QUANTO À QUALIDADE E DESEMPENHO DA BIBLIOTECA É ASSUMIDO POR VOCÊ.
  CASO A BIBLIOTECA CONTENHA DEFEITOS, VOCÊ ARCARÁ COM OS CUSTOS DE TODOS OS SERVIÇOS,
  REPAROS OU CORREÇÕES NECESSÁRIAS. 

 2.EM NENHUMA CIRCUNSTÂNCIA, A MENOS QUE EXIGIDO PELA LEI APLICÁVEL OU ACORDADO POR 
   ESCRITO, QUALQUER TITULAR DE DIREITOS AUTORAIS OU QUALQUER OUTRA PARTE QUE POSSA 
   MODIFICAR E/OU REDISTRIBUIR A BIBLIOTECA, CONFORME PERMITIDO ACIMA, SERÁ RESPONSÁVEL 
   PARA COM VOCÊ POR DANOS, INCLUINDO ENTRE OUTROS QUAISQUER DANOS GERAIS, ESPECIAIS, 
   FORTUITOS OU EMERGENTES, ADVINDOS DO USO OU IMPOSSIBILIDADE DE USO DA BIBLIOTECA 
   (INCLUINDO, ENTRE OUTROS, PERDA DE DADOS, DADOS SENDO GERADOS DE FORMA IMPRECISA, 
   PERDAS SOFRIDAS POR VOCÊ OU TERCEIROS OU A IMPOSSIBILIDADE DA BIBLIOTECA DE OPERAR 
   COM QUALQUER OUTRO SOFTWARE), MESMO QUE ESSE TITULAR, OU OUTRA PARTE, TENHA SIDO 
   AVISADO SOBRE A POSSIBILIDADE DESSES DANOS.
 * 
 * Created on 4 de Novembro de 2008, 19:20
 */

package cadastros;

import java.text.ParseException;
import utilitarios.*;
import java.sql.*;
import javax.swing.*;
import java.awt.EventQueue.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.MaskFormatter;

import java.util.HashMap;


import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;

//import javax.swing.table.DefaultTableModel;
import javax.swing.text.PlainDocument;
import relatorios.rel_maquinas;


/**
 *
 * @author  Shinigami
 */
public class cad_maq extends javax.swing.JFrame {
    
    
    

    conexao con_maquinas, con_setores, con_pesq, con_set; 
    MaskFormatter formatoip,formatoserial;
    int navega = 0; //variavel para saber qual botão foi clicado
    int inicia_combo = 0;
    int modo_banco = 0; //se modo_banco = 1 --> modo salvar
                        //se modo_banco = 2 --> modo alterar
    int pesq = 1; //utilizado para validar ou não a pesquisa
    int pesquisou = 0; //ver comentario no cadastro de ferramentas
    int serialfocus = 0; //verifica se é a primeira vez que passou pelo código do inserir
    String ordenacao = "codigo",cdr,disq,usbx;

    
    
    /** Creates new form cad_maquinas */
    public cad_maq() {
        initComponents();
        con_maquinas = new conexao();
        con_maquinas.conecta();
        con_setores = new conexao();
        con_setores.conecta();
        con_pesq = new conexao();
        con_pesq.conecta();
        con_set = new conexao();
        con_set.conecta();
        
        con_setores.executasql("select * from setores order by nome");
        
               
        con_maquinas.executasql("select * from maquinas");
        travar_campos();
        
        
        jRadioButton1.setVisible(false);
        jRadioButton2.setVisible(false);
        jRadioButton3.setVisible(false);
        
        
                
        
        try {
            con_maquinas.resultset.first();
            
            while(con_setores.resultset.next())
            {  
                cb_setor.addItem(con_setores.resultset.getString("nome"));
                cb_setorpesq.addItem(con_setores.resultset.getString("nome"));
            }
        } catch (SQLException ex) {
            
        }
        preencher_tabela();
        mostrar_dados();
        
       /*         try
        {
            
            con_setores.resultset.first();
            while(con_setores.resultset.next())
            //cb_pesquisa.addItem(con_setoresro.resultset.getString("nome"));
            
            con_setores.resultset.first();
            mostrar_dados(); 
           
        }
        catch(SQLException erro)
        {
            JOptionPane.showMessageDialog(null,"Não localizou dados "+erro);
        }*/        
       
   
    }    
    


    

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        cd = new javax.swing.ButtonGroup();
        disk = new javax.swing.ButtonGroup();
        usb = new javax.swing.ButtonGroup();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        tf_codigo = new javax.swing.JTextField();
        tf_vso = tf_vso = new JTextField();
        tf_vso.setDocument( new PlainDocument()  
            {  
                @Override  
                public void insertString( int offs, String str, AttributeSet a )  
                throws BadLocationException  
                {  
                    super.insertString( offs, str.toUpperCase(), a );  
                }  
            } );  ;
            bt_primeiro = new javax.swing.JButton();
            bt_anterior = new javax.swing.JButton();
            bt_proximo = new javax.swing.JButton();
            bt_ultimo = new javax.swing.JButton();
            bt_inserir = new javax.swing.JButton();
            bt_gravar = new javax.swing.JButton();
            bt_alterar = new javax.swing.JButton();
            bt_excluir = new javax.swing.JButton();
            bt_cancel = new javax.swing.JButton();
            jLabel4 = new javax.swing.JLabel();

            try
            {
                formatoip = new MaskFormatter("###.###.###.###");
            }   
            catch(Exception erro)
            {
                JOptionPane.showMessageDialog(null, "Não foi possível setar a máscara"+erro);
            }

            tf_ip = tf_ip = new JFormattedTextField(formatoip);
            jLabel5 = new javax.swing.JLabel();
            jLabel6 = new javax.swing.JLabel();
            tf_codset = new javax.swing.JTextField();
            cb_setor = new javax.swing.JComboBox();
            jPanel1 = new javax.swing.JPanel();
            cds = new javax.swing.JRadioButton();
            cdn = new javax.swing.JRadioButton();
            jPanel2 = new javax.swing.JPanel();
            disks = new javax.swing.JRadioButton();
            diskn = new javax.swing.JRadioButton();
            jPanel4 = new javax.swing.JPanel();
            usbs = new javax.swing.JRadioButton();
            usbn = new javax.swing.JRadioButton();
            try
            {
                formatoserial = new MaskFormatter("AAAAA-AAAAA-AAAAA-AAAAA-AAAAA");
            }   
            catch(Exception erro)
            {
                JOptionPane.showMessageDialog(null, "Não foi possível setar a máscara"+erro);
            }

            tf_serial = tf_serial = new JFormattedTextField(formatoserial);
            tf_serial.setDocument( new PlainDocument()  
                {  
                    @Override  
                    public void insertString( int offs, String str, AttributeSet a )  
                    throws BadLocationException  
                    {  
                        super.insertString( offs, str.toUpperCase(), a );  
                    }  
                } );  ;
                jRadioButton1 = new javax.swing.JRadioButton();
                jRadioButton2 = new javax.swing.JRadioButton();
                jRadioButton3 = new javax.swing.JRadioButton();
                tf_nome = tf_nome = new JTextField();
                tf_nome.setDocument( new PlainDocument()  
                    {  
                        @Override  
                        public void insertString( int offs, String str, AttributeSet a )  
                        throws BadLocationException  
                        {  
                            super.insertString( offs, str.toUpperCase(), a );  
                        }  
                    } );  ;
                    jScrollPane1 = new javax.swing.JScrollPane();
                    tab_maq = new javax.swing.JTable();
                    jPanel3 = new javax.swing.JPanel();
                    jLabel7 = new javax.swing.JLabel();
                    cb_setorpesq = new javax.swing.JComboBox();
                    bt_tudo = new javax.swing.JButton();
                    jLabel8 = new javax.swing.JLabel();
                    jScrollPane2 = new javax.swing.JScrollPane();
                    ta_obs = ta_obs = new JTextArea();
                    ta_obs.setDocument( new PlainDocument()  
                        {  
                            @Override  
                            public void insertString( int offs, String str, AttributeSet a )  
                            throws BadLocationException  
                            {  
                                super.insertString( offs, str.toUpperCase(), a );  
                            }  
                        } );  ;
                        jMenuBar1 = new javax.swing.JMenuBar();
                        jMenu6 = new javax.swing.JMenu();
                        jm_novo = new javax.swing.JMenuItem();
                        jm_salvar = new javax.swing.JMenuItem();
                        jm_alt = new javax.swing.JMenuItem();
                        jm_del = new javax.swing.JMenuItem();
                        jSeparator1 = new javax.swing.JSeparator();
                        jMenuItem2 = new javax.swing.JMenuItem();
                        jMenu7 = new javax.swing.JMenu();
                        jm_imp = new javax.swing.JMenuItem();
                        jm_grel = new javax.swing.JMenuItem();

                        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
                        setTitle("Cadastro de Máquinas");
                        setResizable(false);

                        jLabel1.setText("Código:");

                        jLabel2.setText("Nome:");

                        jLabel3.setText("IP:");

                        tf_vso.setNextFocusableComponent(tf_serial);

                        bt_primeiro.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/primeiro_registro.gif"))); // NOI18N
                        bt_primeiro.setMnemonic('w');
                        bt_primeiro.setToolTipText("Primeiro registro (ALT + W)");
                        bt_primeiro.addActionListener(new java.awt.event.ActionListener() {
                            public void actionPerformed(java.awt.event.ActionEvent evt) {
                                bt_primeiroActionPerformed(evt);
                            }
                        });

                        bt_anterior.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/registro_anterior.gif"))); // NOI18N
                        bt_anterior.setMnemonic('a');
                        bt_anterior.setToolTipText("Registro anterior (ALT +A)");
                        bt_anterior.addActionListener(new java.awt.event.ActionListener() {
                            public void actionPerformed(java.awt.event.ActionEvent evt) {
                                bt_anteriorActionPerformed(evt);
                            }
                        });

                        bt_proximo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/proximo_registro.gif"))); // NOI18N
                        bt_proximo.setMnemonic('d');
                        bt_proximo.setToolTipText("Próximo registro (ALT +D)");
                        bt_proximo.addActionListener(new java.awt.event.ActionListener() {
                            public void actionPerformed(java.awt.event.ActionEvent evt) {
                                bt_proximoActionPerformed(evt);
                            }
                        });

                        bt_ultimo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/ultimo_registro.gif"))); // NOI18N
                        bt_ultimo.setMnemonic('s');
                        bt_ultimo.setToolTipText("Último registro (ALT + S)");
                        bt_ultimo.addActionListener(new java.awt.event.ActionListener() {
                            public void actionPerformed(java.awt.event.ActionEvent evt) {
                                bt_ultimoActionPerformed(evt);
                            }
                        });

                        bt_inserir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/alterar.gif"))); // NOI18N
                        bt_inserir.setToolTipText("Novo registro (F2)");
                        bt_inserir.addActionListener(new java.awt.event.ActionListener() {
                            public void actionPerformed(java.awt.event.ActionEvent evt) {
                                bt_inserirActionPerformed(evt);
                            }
                        });

                        bt_gravar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/salvar.gif"))); // NOI18N
                        bt_gravar.setToolTipText("Gravar registro (F3)");
                        bt_gravar.addActionListener(new java.awt.event.ActionListener() {
                            public void actionPerformed(java.awt.event.ActionEvent evt) {
                                bt_gravarActionPerformed(evt);
                            }
                        });

                        bt_alterar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/alterar2.gif"))); // NOI18N
                        bt_alterar.setToolTipText("Alterar registro (F4)");
                        bt_alterar.addActionListener(new java.awt.event.ActionListener() {
                            public void actionPerformed(java.awt.event.ActionEvent evt) {
                                bt_alterarActionPerformed(evt);
                            }
                        });

                        bt_excluir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/lixeira1.gif"))); // NOI18N
                        bt_excluir.setToolTipText("Excluir registro (F5)");
                        bt_excluir.addActionListener(new java.awt.event.ActionListener() {
                            public void actionPerformed(java.awt.event.ActionEvent evt) {
                                bt_excluirActionPerformed(evt);
                            }
                        });

                        bt_cancel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/window-close.png"))); // NOI18N
                        bt_cancel.setMnemonic('c');
                        bt_cancel.setToolTipText("Cancelar (ALT + C)");
                        bt_cancel.addActionListener(new java.awt.event.ActionListener() {
                            public void actionPerformed(java.awt.event.ActionEvent evt) {
                                bt_cancelActionPerformed(evt);
                            }
                        });

                        jLabel4.setText("Versão SO:");

                        tf_ip.setNextFocusableComponent(tf_vso);

                        jLabel5.setText("Serial:");

                        jLabel6.setText("Setor:");

                        tf_codset.setNextFocusableComponent(cb_setor);
                        tf_codset.addActionListener(new java.awt.event.ActionListener() {
                            public void actionPerformed(java.awt.event.ActionEvent evt) {
                                tf_codsetActionPerformed(evt);
                            }
                        });
                        tf_codset.addFocusListener(new java.awt.event.FocusAdapter() {
                            public void focusLost(java.awt.event.FocusEvent evt) {
                                tf_codsetFocusLost(evt);
                            }
                        });

                        cb_setor.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "" }));
                        cb_setor.setNextFocusableComponent(ta_obs);
                        cb_setor.addActionListener(new java.awt.event.ActionListener() {
                            public void actionPerformed(java.awt.event.ActionEvent evt) {
                                cb_setorActionPerformed(evt);
                            }
                        });

                        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "CD-ROM", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 11), new java.awt.Color(0, 0, 0))); // NOI18N

                        cd.add(cds);
                        cds.setText("Sim");
                        cds.setNextFocusableComponent(cdn);

                        cd.add(cdn);
                        cdn.setText("Não");
                        cdn.setNextFocusableComponent(disks);

                        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
                        jPanel1.setLayout(jPanel1Layout);
                        jPanel1Layout.setHorizontalGroup(
                            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addContainerGap()
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(cds)
                                    .addComponent(cdn))
                                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                        );
                        jPanel1Layout.setVerticalGroup(
                            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addComponent(cds)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(cdn))
                        );

                        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Disquete", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 11), new java.awt.Color(0, 0, 0))); // NOI18N

                        disk.add(disks);
                        disks.setText("Sim");
                        disks.setNextFocusableComponent(diskn);

                        disk.add(diskn);
                        diskn.setText("Não");
                        diskn.setNextFocusableComponent(usbs);

                        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
                        jPanel2.setLayout(jPanel2Layout);
                        jPanel2Layout.setHorizontalGroup(
                            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel2Layout.createSequentialGroup()
                                .addContainerGap()
                                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(disks)
                                    .addComponent(diskn))
                                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                        );
                        jPanel2Layout.setVerticalGroup(
                            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel2Layout.createSequentialGroup()
                                .addComponent(disks)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(diskn))
                        );

                        jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "USB", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 11), new java.awt.Color(0, 0, 0))); // NOI18N

                        usb.add(usbs);
                        usbs.setText("Sim");
                        usbs.setNextFocusableComponent(usbn);

                        usb.add(usbn);
                        usbn.setText("Não");

                        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
                        jPanel4.setLayout(jPanel4Layout);
                        jPanel4Layout.setHorizontalGroup(
                            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel4Layout.createSequentialGroup()
                                .addContainerGap()
                                .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(usbs)
                                    .addComponent(usbn))
                                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                        );
                        jPanel4Layout.setVerticalGroup(
                            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel4Layout.createSequentialGroup()
                                .addComponent(usbs)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(usbn))
                        );

                        tf_serial.setNextFocusableComponent(tf_codset);

                        cd.add(jRadioButton1);
                        jRadioButton1.setSelected(true);

                        disk.add(jRadioButton2);
                        jRadioButton2.setSelected(true);

                        usb.add(jRadioButton3);
                        jRadioButton3.setSelected(true);

                        tf_nome.setNextFocusableComponent(tf_ip);

                        tab_maq.setModel(new javax.swing.table.DefaultTableModel(
                            new Object [][] {
                                {null, null, null},
                                {null, null, null},
                                {null, null, null},
                                {null, null, null}
                            },
                            new String [] {
                                "Código", "Nome", "IP"
                            }
                        ) {
                            boolean[] canEdit = new boolean [] {
                                false, false, false
                            };

                            public boolean isCellEditable(int rowIndex, int columnIndex) {
                                return canEdit [columnIndex];
                            }
                        });
                        tab_maq.addMouseListener(new java.awt.event.MouseAdapter() {
                            public void mouseClicked(java.awt.event.MouseEvent evt) {
                                tab_maqMouseClicked(evt);
                            }
                        });
                        jScrollPane1.setViewportView(tab_maq);

                        jPanel3.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));

                        jLabel7.setText("Pesquisa:");

                        cb_setorpesq.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "" }));
                        cb_setorpesq.addActionListener(new java.awt.event.ActionListener() {
                            public void actionPerformed(java.awt.event.ActionEvent evt) {
                                cb_setorpesqActionPerformed(evt);
                            }
                        });

                        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
                        jPanel3.setLayout(jPanel3Layout);
                        jPanel3Layout.setHorizontalGroup(
                            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel3Layout.createSequentialGroup()
                                .addContainerGap()
                                .addComponent(jLabel7)
                                .addContainerGap(460, Short.MAX_VALUE))
                            .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(jPanel3Layout.createSequentialGroup()
                                    .addGap(75, 75, 75)
                                    .addComponent(cb_setorpesq, javax.swing.GroupLayout.PREFERRED_SIZE, 383, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addContainerGap(58, Short.MAX_VALUE)))
                        );
                        jPanel3Layout.setVerticalGroup(
                            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
                                .addContainerGap(20, Short.MAX_VALUE)
                                .addComponent(jLabel7)
                                .addContainerGap())
                            .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(jPanel3Layout.createSequentialGroup()
                                    .addGap(12, 12, 12)
                                    .addComponent(cb_setorpesq, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addContainerGap(13, Short.MAX_VALUE)))
                        );

                        bt_tudo.setMnemonic('T');
                        bt_tudo.setText("Mostrar Tudo");
                        bt_tudo.setToolTipText("Mostrar Tudo (ALT + T)");
                        bt_tudo.addActionListener(new java.awt.event.ActionListener() {
                            public void actionPerformed(java.awt.event.ActionEvent evt) {
                                bt_tudoActionPerformed(evt);
                            }
                        });

                        jLabel8.setText("Obs.:");

                        ta_obs.setColumns(20);
                        ta_obs.setRows(5);
                        ta_obs.setNextFocusableComponent(cds);
                        jScrollPane2.setViewportView(ta_obs);

                        jMenu6.setText("Arquivo");

                        jm_novo.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F2, 0));
                        jm_novo.setText("Novo");
                        jm_novo.addActionListener(new java.awt.event.ActionListener() {
                            public void actionPerformed(java.awt.event.ActionEvent evt) {
                                jm_novoActionPerformed(evt);
                            }
                        });
                        jMenu6.add(jm_novo);

                        jm_salvar.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F3, 0));
                        jm_salvar.setText("Salvar");
                        jm_salvar.addActionListener(new java.awt.event.ActionListener() {
                            public void actionPerformed(java.awt.event.ActionEvent evt) {
                                jm_salvarActionPerformed(evt);
                            }
                        });
                        jMenu6.add(jm_salvar);

                        jm_alt.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F4, 0));
                        jm_alt.setText("Alterar");
                        jm_alt.addActionListener(new java.awt.event.ActionListener() {
                            public void actionPerformed(java.awt.event.ActionEvent evt) {
                                jm_altActionPerformed(evt);
                            }
                        });
                        jMenu6.add(jm_alt);

                        jm_del.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F5, 0));
                        jm_del.setText("Excluir");
                        jm_del.addActionListener(new java.awt.event.ActionListener() {
                            public void actionPerformed(java.awt.event.ActionEvent evt) {
                                jm_delActionPerformed(evt);
                            }
                        });
                        jMenu6.add(jm_del);
                        jMenu6.add(jSeparator1);

                        jMenuItem2.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F12, 0));
                        jMenuItem2.setText("Sair");
                        jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
                            public void actionPerformed(java.awt.event.ActionEvent evt) {
                                jMenuItem2ActionPerformed(evt);
                            }
                        });
                        jMenu6.add(jMenuItem2);

                        jMenuBar1.add(jMenu6);

                        jMenu7.setText("Relatórios");

                        jm_imp.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F6, 0));
                        jm_imp.setText("Imprimir");
                        jm_imp.addActionListener(new java.awt.event.ActionListener() {
                            public void actionPerformed(java.awt.event.ActionEvent evt) {
                                jm_impActionPerformed(evt);
                            }
                        });
                        jMenu7.add(jm_imp);

                        jm_grel.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F7, 0));
                        jm_grel.setText("Gerar Relatório");
                        jm_grel.addActionListener(new java.awt.event.ActionListener() {
                            public void actionPerformed(java.awt.event.ActionEvent evt) {
                                jm_grelActionPerformed(evt);
                            }
                        });
                        jMenu7.add(jm_grel);

                        jMenuBar1.add(jMenu7);

                        setJMenuBar(jMenuBar1);

                        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
                        getContentPane().setLayout(layout);
                        layout.setHorizontalGroup(
                            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addContainerGap(55, Short.MAX_VALUE)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addGroup(layout.createSequentialGroup()
                                            .addComponent(bt_tudo)
                                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                            .addComponent(jRadioButton3)
                                            .addGap(73, 73, 73)
                                            .addComponent(jRadioButton2)
                                            .addGap(75, 75, 75)
                                            .addComponent(jRadioButton1))
                                        .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 518, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGap(80, 80, 80))
                            .addGroup(layout.createSequentialGroup()
                                .addGap(77, 77, 77)
                                .addComponent(bt_primeiro, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(bt_anterior, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(bt_proximo, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(bt_ultimo, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(bt_inserir, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(bt_gravar, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(bt_alterar, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(bt_excluir, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(bt_cancel, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addContainerGap(100, Short.MAX_VALUE))
                            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                                .addContainerGap(82, Short.MAX_VALUE)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jLabel3)
                                    .addComponent(jLabel1)
                                    .addComponent(jLabel2)
                                    .addComponent(jLabel8))
                                .addGap(21, 21, 21)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 353, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addGroup(layout.createSequentialGroup()
                                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                            .addComponent(tf_nome)
                                            .addGroup(layout.createSequentialGroup()
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(tf_codigo, javax.swing.GroupLayout.PREFERRED_SIZE, 49, javax.swing.GroupLayout.PREFERRED_SIZE))
                                            .addComponent(tf_ip, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addGap(34, 34, 34)
                                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addGroup(layout.createSequentialGroup()
                                                .addComponent(jLabel5)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(tf_serial, javax.swing.GroupLayout.PREFERRED_SIZE, 244, javax.swing.GroupLayout.PREFERRED_SIZE))
                                            .addGroup(layout.createSequentialGroup()
                                                .addComponent(jLabel6)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(tf_codset, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(cb_setor, javax.swing.GroupLayout.PREFERRED_SIZE, 147, javax.swing.GroupLayout.PREFERRED_SIZE))
                                            .addGroup(layout.createSequentialGroup()
                                                .addComponent(jLabel4)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(tf_vso, javax.swing.GroupLayout.PREFERRED_SIZE, 118, javax.swing.GroupLayout.PREFERRED_SIZE)))))
                                .addGap(80, 80, 80))
                            .addGroup(layout.createSequentialGroup()
                                .addGap(161, 161, 161)
                                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(46, 46, 46)
                                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(47, 47, 47)
                                .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addContainerGap(184, Short.MAX_VALUE))
                        );
                        layout.setVerticalGroup(
                            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(22, 22, 22)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                    .addGroup(layout.createSequentialGroup()
                                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                            .addComponent(jLabel1)
                                            .addComponent(tf_codigo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addGap(12, 12, 12)
                                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                            .addComponent(jLabel2)
                                            .addComponent(tf_nome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addGap(12, 12, 12)
                                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                            .addComponent(jLabel3)
                                            .addComponent(tf_ip, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                    .addGroup(layout.createSequentialGroup()
                                        .addGap(1, 1, 1)
                                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                            .addComponent(jLabel4)
                                            .addComponent(tf_vso, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addGroup(layout.createSequentialGroup()
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(tf_serial, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                            .addComponent(jLabel5))
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                            .addComponent(jLabel6)
                                            .addComponent(tf_codset, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(cb_setor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addGap(2, 2, 2)))
                                .addGap(18, 18, 18)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(jLabel8))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addGroup(layout.createSequentialGroup()
                                        .addGap(1, 1, 1)
                                        .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(layout.createSequentialGroup()
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 1, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                .addGap(13, 13, 13)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(bt_anterior, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(bt_proximo, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addGroup(layout.createSequentialGroup()
                                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                                .addComponent(bt_inserir, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(bt_gravar, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(bt_alterar, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE))
                                            .addComponent(bt_ultimo, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addGap(1, 1, 1))
                                    .addComponent(bt_primeiro, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addGroup(layout.createSequentialGroup()
                                        .addComponent(bt_excluir, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(1, 1, 1))
                                    .addComponent(bt_cancel, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 127, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                        .addComponent(jRadioButton2)
                                        .addComponent(jRadioButton3)
                                        .addComponent(jRadioButton1))
                                    .addComponent(bt_tudo))
                                .addContainerGap(33, Short.MAX_VALUE))
                        );

                        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
                        setBounds((screenSize.width-665)/2, (screenSize.height-656)/2, 665, 656);
                    }// </editor-fold>//GEN-END:initComponents

private void bt_primeiroActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bt_primeiroActionPerformed

    try
        {
           navega = 1;
            con_maquinas.resultset.first();
            mostrar_dados();
        }
        catch(SQLException erro)
        {
            JOptionPane.showMessageDialog(null,"Não localizou dados "+erro);
        }        

    
    
}//GEN-LAST:event_bt_primeiroActionPerformed

private void bt_proximoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bt_proximoActionPerformed

    try
        {
        if (con_maquinas.resultset.isLast())
            {
                navega = 2;
            }
           con_maquinas.resultset.next();
           mostrar_dados(); 
           
        }
        catch(SQLException erro)
        {
            JOptionPane.showMessageDialog(null,"Não localizou dados "+erro);
        }        

    
}//GEN-LAST:event_bt_proximoActionPerformed

private void bt_anteriorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bt_anteriorActionPerformed

    try
        {
            if (con_maquinas.resultset.isFirst())
            {
                navega = 1;
            } 
            con_maquinas.resultset.previous();
            mostrar_dados(); 
            
            
        }
        catch(SQLException erro)
        {
            JOptionPane.showMessageDialog(null,"Não localizou dados "+erro);
        }        

    
    
}//GEN-LAST:event_bt_anteriorActionPerformed

private void bt_ultimoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bt_ultimoActionPerformed

    try
        {
            navega = 2;
            con_maquinas.resultset.last();
            mostrar_dados(); 
           
        }
        catch(SQLException erro)
        {
            JOptionPane.showMessageDialog(null,"Não localizou dados "+erro);
        }        

    
    
}//GEN-LAST:event_bt_ultimoActionPerformed

private void bt_gravarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bt_gravarActionPerformed

    if (modo_banco == 1)
{
    gravar();
}
else if (modo_banco == 2)
{   
    alterar();

}

    
}//GEN-LAST:event_bt_gravarActionPerformed

private void bt_inserirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bt_inserirActionPerformed

    destrava();
    fecha_navegacao();
    bt_excluir.setEnabled(false);
    bt_alterar.setEnabled(false);
    cb_setorpesq.setEnabled(false);
    tab_maq.setEnabled(false);
    bt_tudo.setEnabled(false);
    jm_del.setEnabled(false);
    jm_alt.setEnabled(false);
    jm_imp.setEnabled(false);
    DefaultTableModel tableModel =(DefaultTableModel) tab_maq.getModel();  
    tableModel.setNumRows(0);//limpa o JTable
    
    if(serialfocus == 0)
    {    
    tf_serial.requestFocus();
    tf_nome.requestFocus();
    serialfocus = 1;
    }
    
    cb_setorpesq.setSelectedItem("");
    tf_codigo.setText("");
    tf_nome.setText("");
    tf_vso.setText("");
    tf_ip.setText("");
    tf_codset.setText("");
    cb_setor.setSelectedItem("");
    ta_obs.setText("");
    tf_serial.setText("");
    tf_nome.requestFocus();
    
    
    jRadioButton1.setSelected(true);
    jRadioButton2.setSelected(true);
    jRadioButton3.setSelected(true);
    
    
    modo_banco = 1;

    
}//GEN-LAST:event_bt_inserirActionPerformed

private void bt_alterarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bt_alterarActionPerformed

   cb_setorpesq.setSelectedItem("");
   bt_excluir.setEnabled(false); 
   bt_inserir.setEnabled(false);
   cb_setorpesq.setEnabled(false);
   tab_maq.setEnabled(false);
   bt_tudo.setEnabled(false);
   jm_del.setEnabled(false);
   jm_novo.setEnabled(false);
   jm_imp.setEnabled(false);
   DefaultTableModel tableModel =(DefaultTableModel) tab_maq.getModel();  
   tableModel.setNumRows(0);//limpa o JTable
    
   
   destrava();
   fecha_navegacao();
   tf_nome.requestFocus();
       
    modo_banco = 2;

    
}//GEN-LAST:event_bt_alterarActionPerformed

private void bt_excluirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bt_excluirActionPerformed
    
        try
    {
       
        
       if (tf_nome.getText().equals(""))
       {
        JOptionPane.showMessageDialog(null,"Nenhum registro foi selecionado para exclusão!");
        return;
             
       }
         
       if (tf_ip.getText().equals(""))
       {
        JOptionPane.showMessageDialog(null,"Nenhum registro foi selecionado para exclusão!");
        return;
             
       }
       
       
       if (tf_vso.getText().equals(""))
       {
        JOptionPane.showMessageDialog(null,"Nenhum registro foi selecionado para exclusão!");
        return;
             
       }
       
       
        
        
        String sql = "select * from maquinas Where codigo ="+tf_codigo.getText();
        con_maquinas.executasql(sql);
        con_maquinas.resultset.first();
        String nome = "Deletar a maquina: "+con_maquinas.resultset.getString("nomemaq")+", com ip: "+con_maquinas.resultset.getString("ip")+"?";
        int opcao_escolhida = JOptionPane.showConfirmDialog(null, nome,"Exclusão ",JOptionPane.YES_NO_OPTION);
        
        if (opcao_escolhida == JOptionPane.NO_OPTION)
        {
            con_maquinas.executasql("select * from maquinas");
            con_maquinas.resultset.first();
            mostrar_dados();
            preencher_tabela();
            //visualizacao(ordenacao);
            navega = 0;
            inicia_combo = 0;
            return ;//caso seja escolhida a opção não excluir, ele
                   // retorna para a posição normal sem executar mais nenhum código
        }
        
        else if (opcao_escolhida == JOptionPane.YES_OPTION)
        {
            String codset =tf_codset.getText();   
            con_set.executasql("select * from setores where codigo ="+codset);
            con_set.resultset.first();
            int qtds = (con_set.resultset.getInt("qtd_maq") - 1 );
            String sqlup = "UPDATE setores SET qtd_maq ='"+qtds+"'Where codigo ="+codset;
             
             
            sql = "DELETE from maquinas Where codigo ="+tf_codigo.getText();
            int conseguiu_excluir = con_maquinas.statement.executeUpdate(sql);
            if (conseguiu_excluir == 1)
            {
                con_set.statement.executeUpdate(sqlup);
                JOptionPane.showMessageDialog(null,"Dados excluídos com sucesso!");
                //atualizando o resultset
                con_maquinas.executasql("select * from maquinas");
                //atualiza_cbpesq();
                con_maquinas.resultset.first();//posiciona no 1º registro
                mostrar_dados();//chama a função que mostra os dados 
                preencher_tabela();
                //visualizacao(ordenacao);
                inicia_combo = 0;
            }
          
       
        
     }
     }   
    catch (SQLException erro)
    {
        JOptionPane.showMessageDialog(null,"Não foi possível excluir o registro!"+erro);
    }
    cb_setorpesq.setSelectedItem("");
    travar_campos();

    
}//GEN-LAST:event_bt_excluirActionPerformed

private void bt_cancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bt_cancelActionPerformed

       try
   {        
     
    cb_setorpesq.setSelectedItem("");
    bt_inserir.setEnabled(true);
    bt_alterar.setEnabled(true);
    bt_excluir.setEnabled(true);
    cb_setorpesq.setEnabled(true);
    tab_maq.setEnabled(true);
    bt_tudo.setEnabled(true);
    jm_del.setEnabled(true);
    jm_novo.setEnabled(true);
    jm_alt.setEnabled(true);
    jm_imp.setEnabled(true);
    
    travar_campos();
    abre_navegacao();
    con_maquinas.resultset.first();
    mostrar_dados();
    preencher_tabela();
   }
   catch(Exception erro)
   {
       JOptionPane.showMessageDialog(null, "Erro ao cancelar operação"+erro);
   }        

    
}//GEN-LAST:event_bt_cancelActionPerformed

private void cb_setorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cb_setorActionPerformed

    //procedimento para atualizar o código do bairro
    //if (privbai == false)
    //{
        try
        {
            if (cb_setor.getSelectedItem().equals(""))
            {
                tf_codset.setText("");
            }
            String sql = "select * from setores Where nome like '"+cb_setor.getSelectedItem()+"'";
            con_setores.executasql(sql);
            con_setores.resultset.first();
            tf_codset.setText(con_setores.resultset.getString("codigo"));
            
            
        }
        catch(SQLException erro)
        {
            //JOptionPane.showMessageDialog(null, "Erro ao buscar o código do endereço!"+erro);
        }
   
    //}
     //privbai = false;
    
}//GEN-LAST:event_cb_setorActionPerformed

private void tf_codsetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tf_codsetActionPerformed

   if(tf_codset.getText().equals(""))
    {
        
    }
    else
    cb_setor.requestFocus();
    
}//GEN-LAST:event_tf_codsetActionPerformed

private void tf_codsetFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_tf_codsetFocusLost

    if(tf_codset.getText().equals(""))
    {
        
    }
    else
    atualiza_cbset();
    
}//GEN-LAST:event_tf_codsetFocusLost

private void bt_tudoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bt_tudoActionPerformed
    con_maquinas.executasql("select * from maquinas order by codigo");
    preencher_tabela();
}//GEN-LAST:event_bt_tudoActionPerformed

private void cb_setorpesqActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cb_setorpesqActionPerformed

    preencher_tabelapesq();
    
}//GEN-LAST:event_cb_setorpesqActionPerformed

private void tab_maqMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tab_maqMouseClicked

    if (evt.getClickCount() ==1) 
{
int linha = tab_maq.getSelectedRow(); //cria uma variável (linha) do tipo integer para receber o valor da linha selecionada no JTable
TableModel modelo = (TableModel) tab_maq.getModel(); //cria uma variável (modelo) do tipo TableModel para poder tratar os dados que estão na tabela
  String cod =(String) modelo.getValueAt(linha,0); //variável cod recebe o código que está no jtable na linha selecionada 

  if(cod == null )
    {
        return;
    }
  
 con_maquinas.executasql("select * from maquinas where codigo="+cod); //seleciona o registro com o mesmo código que o do JTable


try 
{
      
      con_maquinas.resultset.first();
      mostrar_dados();
                
    } 
catch (SQLException ex) 
{
                Logger.getLogger(cad_maq.class.getName()).log(Level.SEVERE, null, ex);
}



} 
    
}//GEN-LAST:event_tab_maqMouseClicked

private void jm_novoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jm_novoActionPerformed

    bt_inserirActionPerformed(evt); 
    
}//GEN-LAST:event_jm_novoActionPerformed

private void jm_salvarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jm_salvarActionPerformed

    bt_gravarActionPerformed(evt);
    
}//GEN-LAST:event_jm_salvarActionPerformed

private void jm_altActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jm_altActionPerformed

    bt_alterarActionPerformed(evt);
    
}//GEN-LAST:event_jm_altActionPerformed

private void jm_delActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jm_delActionPerformed

    bt_excluirActionPerformed(evt);
    
}//GEN-LAST:event_jm_delActionPerformed

private void jm_impActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jm_impActionPerformed

    rel_maq();
    
}//GEN-LAST:event_jm_impActionPerformed

private void jm_grelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jm_grelActionPerformed

    new rel_maquinas().setVisible(true);
        
}//GEN-LAST:event_jm_grelActionPerformed

private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed

    setVisible(false);
    
}//GEN-LAST:event_jMenuItem2ActionPerformed
 
    
     /**
    * @param args the command line arguments
    */
public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new cad_maq().setVisible(true);
            }
        });
    }
   

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton bt_alterar;
    private javax.swing.JButton bt_anterior;
    private javax.swing.JButton bt_cancel;
    private javax.swing.JButton bt_excluir;
    private javax.swing.JButton bt_gravar;
    private javax.swing.JButton bt_inserir;
    private javax.swing.JButton bt_primeiro;
    private javax.swing.JButton bt_proximo;
    private javax.swing.JButton bt_tudo;
    private javax.swing.JButton bt_ultimo;
    private javax.swing.JComboBox cb_setor;
    private javax.swing.JComboBox cb_setorpesq;
    private javax.swing.ButtonGroup cd;
    private javax.swing.JRadioButton cdn;
    private javax.swing.JRadioButton cds;
    private javax.swing.ButtonGroup disk;
    private javax.swing.JRadioButton diskn;
    private javax.swing.JRadioButton disks;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JMenu jMenu6;
    private javax.swing.JMenu jMenu7;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JRadioButton jRadioButton1;
    private javax.swing.JRadioButton jRadioButton2;
    private javax.swing.JRadioButton jRadioButton3;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JSeparator jSeparator1;
    private javax.swing.JMenuItem jm_alt;
    private javax.swing.JMenuItem jm_del;
    private javax.swing.JMenuItem jm_grel;
    private javax.swing.JMenuItem jm_imp;
    private javax.swing.JMenuItem jm_novo;
    private javax.swing.JMenuItem jm_salvar;
    private javax.swing.JTextArea ta_obs;
    private javax.swing.JTable tab_maq;
    private javax.swing.JTextField tf_codigo;
    private javax.swing.JTextField tf_codset;
    private javax.swing.JFormattedTextField tf_ip;
    private javax.swing.JTextField tf_nome;
    private javax.swing.JFormattedTextField tf_serial;
    private javax.swing.JTextField tf_vso;
    private javax.swing.ButtonGroup usb;
    private javax.swing.JRadioButton usbn;
    private javax.swing.JRadioButton usbs;
    // End of variables declaration//GEN-END:variables

    public void mostrar_dados()
    {
         try
        {
            
                        
            tf_codigo.setText(con_maquinas.resultset.getString("codigo"));
            tf_nome.setText(con_maquinas.resultset.getString("nomemaq"));
            tf_ip.setText(con_maquinas.resultset.getString("ip"));
            tf_vso.setText(con_maquinas.resultset.getString("versao_so"));
            tf_serial.setText(con_maquinas.resultset.getString("serial"));
            tf_codset.setText(con_maquinas.resultset.getString("setor"));
            ta_obs.setText(con_maquinas.resultset.getString("observacao"));
             if (con_maquinas.resultset.getString("cd").equals("SIM"))
            {
                cds.setSelected(true);
            }
            if (con_maquinas.resultset.getString("cd").equals("NÃO"))
            {
                cdn.setSelected(true);
            }
            
            if (con_maquinas.resultset.getString("disk").equals("SIM"))
            {
                disks.setSelected(true);
            }
            if (con_maquinas.resultset.getString("disk").equals("NÃO"))
            {
                diskn.setSelected(true);
            }
            
            if (con_maquinas.resultset.getString("usb").equals("SIM"))
            {
                usbs.setSelected(true);
            }
            if (con_maquinas.resultset.getString("usb").equals("NÃO"))
            {
                usbn.setSelected(true);
            }
            
           
        }
        catch(SQLException erro)
        {
            if (navega == 1)
            
                JOptionPane.showMessageDialog(null,"Este é o primeiro registro!");
               
            else if (navega == 2)
           
                JOptionPane.showMessageDialog(null,"Este é o último registro!");
                
             else
                JOptionPane.showMessageDialog(null,"Não localizou dados "+erro);
                
            navega = 0;
            
        }  
         atualiza_cbset();
    }
    
    public void gravar()
   {
       try
{
               
     pesq = 0;
           
      if (tf_nome.getText().equals(""))
 {    
     JOptionPane.showMessageDialog(null,"Digite o nome da maquina!");
    travar_campos();
     destrava();
     tf_nome.requestFocus();
     return;     
 }
 
    if (tf_ip.getText().equals(""))
 {    
     JOptionPane.showMessageDialog(null,"Digite o ip da maquina!");
     //travar_campos();
     destrava();
     tf_ip.requestFocus();
     return;
         
 }
     
     
    if (tf_vso.getText().equals(""))
 {    
     JOptionPane.showMessageDialog(null,"Digite a versão do sistema operacional da máquina!");
    destrava();
     tf_nome.requestFocus();
     return;
         
 }
     String ip = tf_ip.getText();
     
     if (ip.equals("   .   .   .   ")) //caso o campo esteja vazio(só com a máscara)
     ip = "";                         //o banco recebe o registro vazio
         
     
      String serial = tf_serial.getText();
     
     if (serial.equals("     -     -     -     -     "))
         serial = "";
     
    if ((cds.isSelected()) || (cdn.isSelected()) )  
    {
        
    }
    else
    {
      JOptionPane.showMessageDialog(null, "Informe se a máquina possui CD-ROM!");
      destrava();
     tf_nome.requestFocus();
     return;
    }
   
      
    if ((usbs.isSelected()) || (usbn.isSelected()) )  
    {
        
    }
    else
    {
      JOptionPane.showMessageDialog(null, "Informe se a máquina possui entradas USB!");
      destrava();
     tf_nome.requestFocus();
     return;
    }
    
      
    if ((disks.isSelected()) || (diskn.isSelected()) )  
    {
        
    }
    else
    {
      JOptionPane.showMessageDialog(null, "Informe se a máquina possui disquete!");
      destrava();
     tf_nome.requestFocus();
     return;
    }  
      
    if (tf_codset.getText().equals(""))
 {    
     JOptionPane.showMessageDialog(null,"Digite o código do setor!");
     destrava();
     tf_nome.requestFocus();
     return;
         
 }
      
      
      
     
   if(cds.isSelected())
     {
         cdr = "SIM"; 
     }
   if (cdn.isSelected())
     {
         cdr = "NÃO";
     } 
      
    if(disks.isSelected())
     {
         disq = "SIM"; 
     }
   if (diskn.isSelected())
     {
         disq = "NÃO";
     } 
      
      if(usbs.isSelected())
     {
         usbx = "SIM"; 
     }
   if (usbn.isSelected())
     {
         usbx = "NÃO";
     } 
       
      
      
   String verifica = "n";
   con_maquinas.resultset.first();
   while(verifica.equals("n")) 
   {
   if (con_maquinas.resultset.getString("nomemaq").equals(tf_nome.getText()))
   {
           verifica = "s";
           String atencao = "Já existe uma máquina com o nome: "+con_maquinas.resultset.getString("nomemaq")+". Deseja salvar assim mesmo?";
           int opcao = JOptionPane.showConfirmDialog(null,atencao,"Atenção ",JOptionPane.YES_NO_OPTION);
           if (opcao == JOptionPane.NO_OPTION)
           {
           con_maquinas.resultset.first();//posiciona no 1º registro
           mostrar_dados();//chama a função que mostra os dados
           return;
           
           }
    }  
    if (con_maquinas.resultset.getString("ip").equals(tf_ip.getText())) 
   {
           verifica = "s";
           String atenc = "Já existe uma máquina com o IP: "+con_maquinas.resultset.getString("ip")+". Deseja salvar assim mesmo?";
           int opc = JOptionPane.showConfirmDialog(null,atenc,"Atenção ",JOptionPane.YES_NO_OPTION);
           if (opc == JOptionPane.NO_OPTION)
           {
           con_maquinas.resultset.first();//posiciona no 1º registro
           mostrar_dados();//chama a função que mostra os dados
           return;
           
           }       
          
    }
   else
   {
     
       if (con_maquinas.resultset.isLast())
       {
           break;
       }
       else
       con_maquinas.resultset.next();
   }
    
   }
   
 //código para gravar os dados no banco (dentro do try)
             
             
             
             String codset =tf_codset.getText();   
             con_set.executasql("select * from setores where codigo ="+codset);
             con_set.resultset.first();
             int qtds = (con_set.resultset.getInt("qtd_maq") + 1);
             String sqlup = "UPDATE setores SET qtd_maq ='"+qtds+"'Where codigo ="+codset;
            
             
             String sqlinsert = "insert into maquinas (nomemaq,ip,versao_so,serial,cd,disk,usb,setor,observacao ) values ('"+
             tf_nome.getText()+"','"+
             ip+"','"+        
             tf_vso.getText()+"','"+
             serial+"','"+
             cdr+"','"+        
             disq+"','"+
             usbx+"','"+
             tf_codset.getText()+"','"+
             ta_obs.getText()+"')";
                         
             
             con_maquinas.resultset.last();
             con_maquinas.statement.executeUpdate(sqlinsert);
             
             
             con_set.statement.executeUpdate(sqlup);
             
             JOptionPane.showMessageDialog(null,"Dados salvos com sucesso!");

             //atualiza o resultset
            
             con_maquinas.resultset = con_maquinas.statement.executeQuery("select * from maquinas");
             //con_maquinas.executasql("select * from maquinas");
             //atualiza_cbpesq();
             con_maquinas.resultset.first();//posicona no primeiro registro
             mostrar_dados();
            
             //visualizacao(ordenacao);
 }

  catch (SQLException erro)
 {
     JOptionPane.showMessageDialog(null,"Erro ao gravar dados!"+erro);
 }
  //pesq = 0;  
  modo_banco = 0;
  cb_setorpesq.setSelectedItem("");
  bt_inserir.setEnabled(true);
  bt_alterar.setEnabled(true);
  bt_excluir.setEnabled(true);
  cb_setorpesq.setEnabled(true);
  tab_maq.setEnabled(true);
  bt_tudo.setEnabled(true);
  jm_del.setEnabled(true);
  jm_novo.setEnabled(true);
  jm_alt.setEnabled(true);
  jm_imp.setEnabled(true);
  preencher_tabela();
  travar_campos();
  abre_navegacao();
  
  
 }

public void alterar()
{
     try
    {
     
     pesq = 0;    
         
 if (tf_nome.getText().equals(""))
 {    
     JOptionPane.showMessageDialog(null,"Digite o nome da maquina!");
    travar_campos();
     destrava();
     tf_nome.requestFocus();
     return;     
 }
 
    if (tf_ip.getText().equals(""))
 {    
     JOptionPane.showMessageDialog(null,"Digite o ip da maquina!");
     //travar_campos();
     destrava();
     tf_ip.requestFocus();
     return;
         
 }
     
     
    if (tf_vso.getText().equals(""))
 {    
     JOptionPane.showMessageDialog(null,"Digite a versão do sistema operacional da máquina!");
    destrava();
     tf_nome.requestFocus();
     return;
         
 }
     String ip = tf_ip.getText();
     
     if (ip.equals("   .   .   .   ")) //caso o campo esteja vazio(só com a máscara)
     ip = "";                         //o banco recebe o registro vazio
         
     
      String serial = tf_serial.getText();
     
     if (serial.equals("     -     -     -     -     "))
         serial = "";
     
    if ((cds.isSelected()) || (cdn.isSelected()) )  
    {
        
    }
    else
    {
     
     JOptionPane.showMessageDialog(null, "Informe se a máquina possui CD-ROM!");
     destrava();
     tf_nome.requestFocus();
     return;
    }
   
      
    if ((usbs.isSelected()) || (usbn.isSelected()) )  
    {
        
    }
    else
    {
      JOptionPane.showMessageDialog(null, "Informe se a máquina possui entradas USB!");
      destrava();
     tf_nome.requestFocus();
     return;
    }
    
      
    if ((disks.isSelected()) || (diskn.isSelected()) )  
    {
        
    }
    else
    {
      JOptionPane.showMessageDialog(null, "Informe se a máquina possui disquete!");
      destrava();
     tf_nome.requestFocus();
     return;
    }  
      
    if (tf_codset.getText().equals(""))
 {    
     JOptionPane.showMessageDialog(null,"Digite o código do setor!");
     destrava();
     tf_nome.requestFocus();
     return;
         
 }
      
      
      
     
   if(cds.isSelected())
     {
         cdr = "SIM"; 
     }
   if (cdn.isSelected())
     {
         cdr = "NÃO";
     } 
      
    if(disks.isSelected())
     {
         disq = "SIM"; 
     }
   if (diskn.isSelected())
     {
         disq = "NÃO";
     } 
      
      if(usbs.isSelected())
     {
         usbx = "SIM"; 
     }
   if (usbn.isSelected())
     {
         usbx = "NÃO";
     } 
     
     
 /*  String verifica = "n";
   con_maquinas.resultset.first();
   while(verifica.equals("n")) 
   {
   if (con_maquinas.resultset.getString("nome").equals(tf_nome.getText()) && (con_maquinas.resultset.getString("ip").equals(tf_ip.getText())))
   //if (con_maquinas.resultset.getString("nome").equals(tf_nome.getText()))
    {
           verifica = "s";
           String atencao = "Já existe um registro com os dados: "+con_maquinas.resultset.getString("nome")+", e ip: "+con_maquinas.resultset.getString("ip")+". Deseja salvar assim mesmo?";
           int opcao = JOptionPane.showConfirmDialog(null,atencao,"Atenção ",JOptionPane.YES_NO_OPTION);
           if (opcao == JOptionPane.NO_OPTION)
           {
           tf_nome.requestFocus();
           return; //sai sem compilar o restante do codigo
          
           }
           }
   else
   {
     
       if (con_maquinas.resultset.isLast())
       {
           break;
       }
       else
               con_maquinas.resultset.next();
       
   }
   }  */
        
        String sql = "UPDATE maquinas SET nomemaq ='"+tf_nome.getText()+"',ip ='"+ip+"',versao_so ='"+tf_vso.getText()+"',serial ='"+serial+"',cd ='"+cdr+"',disk ='"+disq+"',usb ='"+usbx+"',setor ='"+tf_codset.getText()+"',observacao ='"+ta_obs.getText()+"'Where codigo ="+tf_codigo.getText();
        con_maquinas.statement.executeUpdate(sql);
        JOptionPane.showMessageDialog(null,"Alteração realizada com sucesso!");
        
        //atualizando o resultset
        con_maquinas.executasql("select * from maquinas");
        //atualiza_cbpesq();
        con_maquinas.resultset.first();
        mostrar_dados();
        //preencher_tabela();
        //visualizacao(ordenacao);
    } 
    
    
    catch (SQLException erro)
    {
        JOptionPane.showConfirmDialog(null,"Não foi possível alterar os dados! "+erro);
    }
       
    //pesq = 0;
   
    modo_banco = 0;
    cb_setorpesq.setSelectedItem("");
    bt_inserir.setEnabled(true);
    bt_alterar.setEnabled(true);
    bt_excluir.setEnabled(true);
    cb_setorpesq.setEnabled(true);
    tab_maq.setEnabled(true);
    bt_tudo.setEnabled(true);
    jm_del.setEnabled(true);
    jm_novo.setEnabled(true);
    jm_alt.setEnabled(true);
    jm_imp.setEnabled(true);
    preencher_tabela();
    travar_campos();
    abre_navegacao();
}
public void travar_campos()
{
    
    tf_codigo.setEditable(false);
    tf_nome.setEditable(false);
    tf_vso.setEditable(false);
    bt_gravar.setEnabled(false);
    jm_salvar.setEnabled(false);
    tf_ip.setEditable(false);
    tf_serial.setEditable(false);
    tf_codset.setEditable(false);
    ta_obs.setEditable(false);
    cb_setor.setEnabled(false);
    cdn.setEnabled(false);
    cds.setEnabled(false);
    diskn.setEnabled(false);
    disks.setEnabled(false);
    usbn.setEnabled(false);
    usbs.setEnabled(false);
            
}

public void destrava()
{
    tf_nome.setEditable(true);
    tf_vso.setEditable(true);
    bt_gravar.setEnabled(true);
    jm_salvar.setEnabled(true);
    tf_ip.setEditable(true);
    tf_serial.setEditable(true);
    tf_codset.setEditable(true);
    ta_obs.setEditable(true);
    cb_setor.setEnabled(true);
    cdn.setEnabled(true);
    cds.setEnabled(true);
    diskn.setEnabled(true);
    disks.setEnabled(true);
    usbn.setEnabled(true);
    usbs.setEnabled(true);
}
    
public void fecha_navegacao()
{
     bt_primeiro.setEnabled(false);
    bt_anterior.setEnabled(false);
    bt_proximo.setEnabled(false);
    bt_ultimo.setEnabled(false);
}
public void abre_navegacao()
{
    bt_primeiro.setEnabled(true);
    bt_anterior.setEnabled(true);
    bt_proximo.setEnabled(true);
    bt_ultimo.setEnabled(true);
}

public void atualiza_cbset()
{
    //procedimento para atualizar o combo box de setores
    try
    {
        String sql="select * from setores Where codigo ="+tf_codset.getText();
        con_setores.executasql(sql);
        con_setores.resultset.first();
        cb_setor.setSelectedItem(con_setores.resultset.getString("nome"));
    }
    catch(SQLException erro)
    {
        JOptionPane.showMessageDialog(null, "setores não encontrado!");
        tf_codset.setText("");
        tf_codset.requestFocus();
    }
}
public void preencher_tabela()
{
   
    tab_maq.getColumnModel().getColumn(0).setPreferredWidth(10);
    tab_maq.getColumnModel().getColumn(1).setPreferredWidth(50);
    tab_maq.getColumnModel().getColumn(2).setPreferredWidth(150);
    
    
    DefaultTableModel tabela = (DefaultTableModel)tab_maq.getModel();
    tabela.setNumRows(0);
    
    try
    {
         
        con_maquinas.resultset.beforeFirst();
         
        while(con_maquinas.resultset.next())
        {
            
            tabela.addRow(new Object[]{con_maquinas.resultset.getString("codigo"),con_maquinas.resultset.getString("nomemaq"),con_maquinas.resultset.getString("ip")});
                
        }
        con_maquinas.resultset.first();
    }
    catch(SQLException erro)
    {        
        JOptionPane.showMessageDialog(null,"Erro ao listar os dados na tabela "+erro);    

    }    
}
public void preencher_tabelapesq()
{
    if( ! cb_setorpesq.getSelectedItem().equals(""))
    {
    tab_maq.getColumnModel().getColumn(0).setPreferredWidth(10);
    tab_maq.getColumnModel().getColumn(1).setPreferredWidth(50);
    tab_maq.getColumnModel().getColumn(2).setPreferredWidth(150);
    
    DefaultTableModel tabela = (DefaultTableModel)tab_maq.getModel();
    tabela.setNumRows(0);
    
    try
    {
         
        con_pesq.executasql("SELECT maquinas.`codigo`,  maquinas.`nomemaq`, maquinas.`ip`, maquinas.`versao_so`,maquinas.`serial`,maquinas.`setor`,setores.`nome` FROM`setores` setores INNER JOIN `maquinas` maquinas ON setores.`nome` like'"+cb_setorpesq.getSelectedItem()+"' AND maquinas.`setor` = setores.`codigo` order by maquinas.`nomemaq`");
        con_pesq.resultset.beforeFirst();
        while(con_pesq.resultset.next())
        {
                  
            
            tabela.addRow(new Object[]{con_pesq.resultset.getString("codigo"),con_pesq.resultset.getString("nomemaq"),con_pesq.resultset.getString("ip")});
            
        }
        
        con_maquinas.executasql("SELECT maquinas.`codigo`,  maquinas.`nomemaq`, maquinas.`ip`, maquinas.`versao_so`,maquinas.`serial`,maquinas.`setor`,maquinas.`observacao`,maquinas.`cd`,maquinas.`disk`,maquinas.`usb`,setores.`nome` FROM`setores` setores INNER JOIN `maquinas` maquinas ON setores.`nome` like'"+cb_setorpesq.getSelectedItem()+"' AND maquinas.`setor` = setores.`codigo`");
        con_maquinas.resultset.first();
        mostrar_dados();       
        cb_setorpesq.setSelectedItem("");
        pesquisou = 1;        
    }
    catch(SQLException erro)
    {        
      //JOptionPane.showMessageDialog(null,"Erro ao listar os dados na tabela "+erro);    

    }
    }
}

private void rel_maq() 
    {

        if(pesquisou == 1)
        {
        try
        {
            
            con_pesq.resultset.beforeFirst();
            JRResultSetDataSource jrrs = new JRResultSetDataSource(con_pesq.resultset);
            JasperPrint jspimp = JasperFillManager.fillReport("relatórios/rel_maq.jasper", new HashMap(),jrrs);
            JasperViewer.viewReport(jspimp,false);
            
        }
        catch(Exception erro)
        {
            JOptionPane.showMessageDialog(null, "erro ="+erro);
        }
        }
        else
        {
            try
        {
            
            con_pesq.executasql("SELECT maquinas.`codigo`,  maquinas.`nomemaq`, maquinas.`ip`, maquinas.`versao_so`,maquinas.`serial`,maquinas.`setor`,setores.`nome` FROM`setores` setores INNER JOIN `maquinas` maquinas ON maquinas.`setor` = setores.`codigo`");
            con_pesq.resultset.beforeFirst();
            JRResultSetDataSource jrrs = new JRResultSetDataSource(con_pesq.resultset);
            JasperPrint jspimp = JasperFillManager.fillReport("relatórios/rel_maq.jasper", new HashMap(),jrrs);
            JasperViewer.viewReport(jspimp,false);
            
        }
        catch(Exception erro)
        {
            JOptionPane.showMessageDialog(null, "erro ="+erro);
        }
        }
        pesquisou = 0;
    }

}
